package com.jxd.project.travel.util;

import com.jxd.project.travel.model.FileConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.io.File;
import java.net.URL;

/**
 * @ClassName FileDeleteUtil
 * @Description TODO
 * @Author 邢子剑
 * @Date 2025/10/9 下午2:29
 * @Version 1.0
 */
@Component
public class FileDeleteUtil {
    @Autowired
    private FileConfig fileConfig;

    /**
     * 根据图片URL删除服务器上的图片文件
     * @param imageUrl 前端传递的图片URL
     * @return
     */
    public boolean deleteImageByUrl(String imageUrl) {
        try {
            // 1. 解析URL，获取路径部分
            URL url = new URL(imageUrl);
            String urlPath = url.getPath();

            // 2. 转换为服务器实际存储路径
            String relativePath = urlPath.replace(fileConfig.getAccessPath().replace("**", ""), "");
            String realFilePath = fileConfig.getUploadPath() + relativePath;

            // 3. 执行删除
            File imageFile = new File(realFilePath);
            if (imageFile.exists() && imageFile.isFile()) {
                return imageFile.delete();
            } else {
                // 文件不存在
                return true;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
}
